﻿#pragma once
#include <d3dx9.h>
#include <d3d9.h>
#include "DirectX.h"

class Sprite
{
public:
	LPDIRECT3DTEXTURE9 _Image;			// ảnh nguồn
	LPD3DXSPRITE _spriteHandler;

	int _index;							// chỉ số của sprite hiện tại
	int _width;							// chiều dài mỗi sprite
	int _height;						// chiều cao mỗi sprite
	int _count;							// số sprite trong file ảnh nguồn
	int _spritePerRow;					// số sprite trên mỗi hàng
	RECT _rec;							// khung xác định sprite hiện tại
	int _animationRate;						// 
	DWORD _lastTime;					// lưu lại thời điểm sprite được vẽ gần nhất

	char* _name;
public:
	Sprite();
	Sprite(char* name,LPD3DXSPRITE SpriteHandler,int Width, int Height, int Count, int SpritePerRow, LPDIRECT3DTEXTURE9 Image,int FrameRate);
	Sprite(const Sprite &sprite);
	void Next();						// Sprite tiếp theo trong file ảnh nguồn
	void Render(float x,float y);			// Vẽ sprite ở tọa độ (x,y)

	int getAnimationRate();

	void getSize(int &width, int &height){width = _width; height = _height;};
	void setSize(const int &width, const int &height){ _width = width; _height = height;};

	char* getName(){return _name;};
	void setName(char* name){_name = name;};

	~Sprite(void);

};

